/*
 * @Description: 请求工具【axios, fetch , 其他】
 * @Author: charles
 * @Date: 2021-11-18 09:29:56
 * @LastEditors: charles
 * @LastEditTime: 2021-11-18 10:08:21
 */
import axios from 'axios'
import {token} from './config'
import qs from 'qs'
import {ElMessage} from 'element-plus'

const instance = axios.create({
  baseURL: 'http://121.199.29.84:8002',
  timeout: 5000,
});

// 添加请求拦截器
instance.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  config.headers['Authorization'] = token;
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
  // 将后端数据获取过来
  const {data:resp} = response;
  if(resp.status !=200){
    ElMessage({
      showClose: true,
      message: resp.message,
      type: 'error',
    })
    return Promise.reject(resp.message);
  }
  return resp;
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error);
});

// 快捷方法
export function get(url,params){
  return instance.get(url,{params})
}
// post请求，参数查询字符串
export function post(url,data) {
  return instance.post(url,qs.stringify(data),{
    headers:{
      "Content-Type":"application/x-www-form-urlencoded"
    }
  })
}
export function del(url,params){
  return instance.delete(url,{params})
}
// post请求，参数是json
export function postJSON(url,data){
  return instance.post(url,data)
}

export default instance;
